草庐IT

MySQL ALTER TABLE 挂起

全部标签

java - 如何调试挂起的 Java 线程?

我有以下问题:我在Tomcat(Linux)中部署了一个Web应用程序,在关闭Tomcat后,如果我执行ps-ef我仍然可以看到java进程正在运行。我相信这是由于一些挂起的线程而发生的,但我不知道如何追踪这个线程。我该如何调试这个问题? 最佳答案 您可以如下所述生成4-5个线程转储,然后使用Samurai等工具分析它们.您要检查的是,当发生卡住线程或长时间运行的事务时,所有线程转储都会显示某个线程ID位于您的Java堆栈跟踪中的同一行。简单来说,事务跨越多个线程转储,因此需要更多调查。现在,当您通过Samurai运行这些程序时,它

java - 连接在不活动时间后挂起

在我的应用程序中,Spring管理用于数据库访问的连接池。Hibernate使用这些连接进行查询。乍一看,我对池没有任何问题:它可以在并发客户端和只有一个连接的池中正常工作。我可以执行很多查询,所以我认为我(或Spring)不会留下打开的连接。我的问题在一段时间不活动后出现(有时30分钟,有时超过2小时)。然后,当Hibernate进行一些搜索时,它会持续太多。将log4j级别设置为TRACE,我得到以下日志:...18:27:01DEBUGnsactionSynchronizationManager-Retrievedvalue[org.springframework.orm.hib

Linux 上的 Java 应用程序在 "java.io.UnixFileSystem.getBooleanAttributes0"处挂起

我们的客户应用程序似乎因以下堆栈跟踪而挂起:java.lang.Thread.State:RUNNABLEatjava.io.UnixFileSystem.getBooleanAttributes0(NativeMethod)atjava.io.UnixFileSystem.getBooleanAttributes(UnknownSource)atjava.io.File.isFile(UnknownSource)atorg.tmatesoft.svn.core.internal.wc.SVNFileType.getType(SVNFileType.java:118)atorg.tma

java - 多个 Java 应用程序访问一个 HSQLDB 导致应用程序挂起

这与我之前的question半相关.正如前面的问题所述,我有一个桌面应用程序调用另一个将启动特定进程的Main方法。桌面应用程序和单独的Main方法都将访问同一个HSQLDB数据库。在此之前,我的桌面应用程序只是使用像这样的连接URL访问HSQLDB数据库:jdbc:hsqldb:file:/some/path/myDatabase现在这在单用户环境中工作正常。现在我已经有了一个多用户环境,其中包含桌面应用程序和想要读取/写入此数据库的单独主进程,我想使此数据库成为共享资源。我看过HSQLDBdocumentation和这篇关于CreatingasharedHSQLDBdatabase

java - 发布 EAR 文件在 WebSphere 8.0 上挂起

最近,我们的一些项目在发布到WebSphere8.0(使用8.0.0.5、8.0.0.6和8.0.0.9进行测试)时开始挂起,但这并非总是发生。这是一个正常的安装细节Installing...Ifthereareenterprisebeansintheapplication,theEJBdeploymentprocesscantakeseveralminutes.Donotsavetheconfigurationuntiltheprocesscompletes.ChecktheSystemOut.logonthedeploymentmanagerorserverwheretheappl

java - 如果父级不使用 Java 中的 stdout/stderr,为什么进程会挂起?

我知道,如果您在Java中使用ProcessBuilder.start启动外部进程,您必须使用它的stdout/stderr(例如,参见here)。否则外部进程会在启动时挂起。我的问题是为什么它以这种方式工作。我的猜测是JVM将执行进程的stdout/stderr重定向到管道,如果管道没有空间,则写入管道block。有道理吗?现在我想知道为什么Java这样做。这种设计背后的基本原理是什么? 最佳答案 Java在这方面没有做任何事情。它只是使用操作系统服务来创建管道。所有Unix类操作系统和Windows在这方面的行为都相同:在父子之

java - JVM 周期性挂起

尝试调试行为异常的Java虚拟机。有问题的进程是一个大型VM(100GB堆),在Centos5上运行SunVM1.6u24,它正在执行常规后端工作——即数据库访问、文件I/O等等。在软件版本升级重启进程后,我们注意到其吞吐量明显下降。大多数时候,top报告Java进程充分利用了2个内核。在那段时间里,VM完全不负责:不写入日志,也不响应jstack或kill-3等外部工具。一旦VM恢复,该过程将照常继续,直到下一次挂起。strace显示在这些挂起期间,只有2个线程进行系统调用。它们是VM线程“VMThread”(21776)和“VMPeriodicTaskThread”(21786)。

java - ActiveMQ 消费者挂起

我有一个使用SSL传输的activeMQ代理。我有大约10个消费者正在使用代理。我正在使用Camel来配置我的路线。每隔一段时间,它就会挂起并且不会消费新消息,即使我重新启动消费者,即使队列中有待处理的消息也是如此。我开始尝试通过逐步检查我的消费者来尝试复制问题,从而找出发生这种情况的位置。我终于找到了一个可以重现问题的消费者。它会在一段时间后挂起,但是,如果我转到Activity的MQ管理控制台并尝试查看队列中的消息,它将再次开始运行。我认为Jetty导致连接发生以刷新网页队列,从而解除了我遇到的一些线程问题。我应该如何调试它?谢谢 最佳答案

java - Windows 10 的 VisualVM 校准步骤挂起

情况:我已经在我的Windows10周年纪念版上安装了VisualVM1.3.8(并没有使用JDK8附带的那个)。我想用它来分析Java(Play)应用程序。发生了什么:当开始CPU分析时,它首先询问我需要校准,当发生这种情况时它会卡在该阶段。TheDisplayshowingthehanging我尝试过的:我在MacOS8上试过了,它确实通过了校准步骤。我已编辑etc/visualvm.conf以禁用d3d管道功能。visualvm_default_options="-J-Dsun.java2d.d3d=false-J-client-J-Xms24m-J-Xmx256m-J-XX:+

Facebook OG 元数据仅适用于某些页面,不适用于其他页面;调试器挂起

标题几乎说明了一切:Facebook读取一些我的网页的OG元标记而不是其他。我承认在元标记方面我是个新手。话虽这么说,我根本不明白问题出在哪里。Facebook的调试器工具在其中一些页面上运行时挂起并最终超时。我将Drupal7与(相对简单的)Metatag模块一起使用。有问题的页面是这个:http://objectneurotic.com/auto-generate-drum-patterns-in-ableton谢谢!!!编辑:我没有在我的原始帖子中包含任何代码,所以这就是我的元标记部分的样子——无论如何,大部分都是这样;由于我前几天更正了代码,为了说明目的,错误已被重新创建。最终